package com.ctshk.rpc.order.season.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author 杨林
 * @version 1.0
 * @date 2021/3/29 14:18
 */

@Data
@ApiModel(value = "SeasonSeasonOrderDTO", description = "订单中心-订单管理-搜索页实体")
public class SeasonSearchOrderDTO extends SeasonOrderPackageProductDTO implements Serializable {

    @ApiModelProperty(value = "表id")
    private Long id;

    @ApiModelProperty(value = "固定套票的id")
    private Long productId;

    @ApiModelProperty(value = "动态套票的id")
    private Long packageId;

    @ApiModelProperty(value = "套票打包产品属性 ( 1:机票 2:船票  3:酒店 4:巴士 5:火车票 6:景点门票 7:当地玩乐 8商品 多个以逗号分隔,)")
    private String seasonPackageProductFlag;

    @ApiModelProperty(value = "销售单号")
    private String orderNumber;

    @ApiModelProperty(value = "产品业务类型标识")
    private Integer productType;

    @ApiModelProperty(value = "产品业务类型标识 对应的值")
    private String productTypeValue;

    @ApiModelProperty(value = "产品名称")
    private String productName;

    @ApiModelProperty(value = "套票类型名")
    private String seasonTypeName;

    @ApiModelProperty(value = "固定套票  退改条款 1:不退不改  2：按照组合产品退改条款")
    private Integer backTerms;

    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "出发日期")
    private LocalDate departDate;

    @ApiModelProperty(value = "儿童数")
    private Integer child;

    @ApiModelProperty(value = "成人数")
    private Integer adult;

    @ApiModelProperty(value = "来源")
    private String source;
    @ApiModelProperty(value = "来源对应的值")
    private String sourceValue;

    @ApiModelProperty(value = "付款到期时间")
    private LocalDateTime payExpireDate;

    @ApiModelProperty(value = "付款状态")
    private Integer paymentStatus;
    @ApiModelProperty(value = "付款状态 对应的值")
    private String paymentStatusValue;

    @ApiModelProperty(value = "应收金额")
    private BigDecimal receivableAmount;

    @ApiModelProperty(value = "已退款金额")
    private BigDecimal refundedAmount;

    @ApiModelProperty(value = "优惠总金额")
    private BigDecimal totalCouponAmount;

    @ApiModelProperty(value = "预定状态")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "预定状态 对应的值")
    private String paymentScheduledStatus;

    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;
    @ApiModelProperty(value = "取消状态 对应的值")
    private String cancelStatusValue;

    @ApiModelProperty(value = "销售人员名称")
    private String salesmanName;

    @ApiModelProperty(value = "联系人姓")
    private String surname;

    @ApiModelProperty(value = "联系人名")
    private String name;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "联系人手机")
    private String contactMobile;


    @ApiModelProperty(value = "联系人手机区号")
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "返程日期")
    private LocalDate backRoundDate;

    @ApiModelProperty(value = "行程天数")
    private String travelDays;

    @ApiModelProperty(value = "行程")
    private String travel;

    @ApiModelProperty(value = "预定须知")
    private String bookingInformation;

    @ApiModelProperty(value = "旅客信息列表")
    private List<SeasonOrderTouristDataDTO> seasonOrderTouristDataList;

    @ApiModelProperty(value = "保险信息列表")
    private List<SeasonOrderInsuranceDTO> seasonOrderInsuranceDataList;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "订单创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "套票类型")
    private Long seasonTypeId;

    @ApiModelProperty(value = "取消原因")
    private String refundReason;

}